package com.erp.erp_entitys.Contract_Info;

import org.hibernate.validator.constraints.NotEmpty;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author 
 * 外销合同商品信息表
 */
public class ContractProductInfo implements Serializable {
    /**
     * 主键ID
     */
    private Long contractproductid;

    /**
     * 销售合同ID
     */
    @NotEmpty
    private Long contractid;

    /**
     * 产品主表ID
     */
    @NotEmpty
    private Long productid;

    /**
     * 规格信息表ID
     */
    @NotEmpty
    private Integer specid;

    /**
     * 供应商信息表ID
     */
    @NotEmpty
    private Integer supplyerid;

    /**
     * 供应商名称
     */
    @NotEmpty
    private String supplyername;

    /**
     * 产品条码
     */
    @NotEmpty
    private String barcode;

    /**
     * 产品编码
     */
    @NotEmpty
    private String productcode;

    /**
     * 规格编码
     */
    @NotEmpty
    private String specificationcoding;

    /**
     * 规格说明
     */
    @NotEmpty
    private String thespecification;

    /**
     * 客户货号
     */
    @NotEmpty
    private String customersarticlenumber;

    /**
     * 产品中文名称
     */
    @NotEmpty
    private String chinesename;

    /**
     * 产品英文名称
     */
    @NotEmpty
    private String englishnames;

    /**
     * 产品中文描述
     */
    @NotEmpty
    private String chinesedescription;

    /**
     * 产品英文描述
     */
    @NotEmpty
    private String englishdescription;

    /**
     * 数量
     */
    @NotEmpty
    private String number;

    /**
     * 产品单位
     */
    @NotEmpty
    private String unit;

    /**
     * 单价
     */
    @NotEmpty
    private String unitprice;

    /**
     * 金额小计
     */
    @NotEmpty
    private String amountsubtotal;

    /**
     * 产品颜色
     */
    @NotEmpty
    private String color;

    /**
     * 海关编码
     */
    @NotEmpty
    private String customscode;

    /**
     * 创建时间
     */
    @NotEmpty
    private Date creattime;

    /**
     * 编辑时间
     */
    @NotEmpty
    private Date edittime;

    /**
     * 报关中文品名
     */
    @NotEmpty
    private String customscommodity;

    /**
     * 报关英文品名
     */
    @NotEmpty
    private String englishname;

    /**
     * 报关单位
     */
    @NotEmpty
    private String customsdeclarationunits;

    /**
     * 进口关税
     */
    @NotEmpty
    private String importduties;

    /**
     * 退税率
     */
    private BigDecimal taxrebates;

    /**
     * 增值税率
     */
    private BigDecimal valueaddedtax;

    /**
     * 外包装长
     */
    private BigDecimal longs;

    /**
     * 外包装宽
     */
    private BigDecimal wide;

    /**
     * 外包装高
     */
    private String high;

    /**
     * 外包装说明
     */
    private String descriptionouterpacking;

    private static final long serialVersionUID = 1L;

    public Long getContractproductid() {
        return contractproductid;
    }

    public void setContractproductid(Long contractproductid) {
        this.contractproductid = contractproductid;
    }

    public Long getContractid() {
        return contractid;
    }

    public void setContractid(Long contractid) {
        this.contractid = contractid;
    }

    public Long getProductid() {
        return productid;
    }

    public void setProductid(Long productid) {
        this.productid = productid;
    }

    public Integer getSpecid() {
        return specid;
    }

    public void setSpecid(Integer specid) {
        this.specid = specid;
    }

    public Integer getSupplyerid() {
        return supplyerid;
    }

    public void setSupplyerid(Integer supplyerid) {
        this.supplyerid = supplyerid;
    }

    public String getSupplyername() {
        return supplyername;
    }

    public void setSupplyername(String supplyername) {
        this.supplyername = supplyername;
    }

    public String getBarcode() {
        return barcode;
    }

    public void setBarcode(String barcode) {
        this.barcode = barcode;
    }

    public String getProductcode() {
        return productcode;
    }

    public void setProductcode(String productcode) {
        this.productcode = productcode;
    }

    public String getSpecificationcoding() {
        return specificationcoding;
    }

    public void setSpecificationcoding(String specificationcoding) {
        this.specificationcoding = specificationcoding;
    }

    public String getThespecification() {
        return thespecification;
    }

    public void setThespecification(String thespecification) {
        this.thespecification = thespecification;
    }

    public String getCustomersarticlenumber() {
        return customersarticlenumber;
    }

    public void setCustomersarticlenumber(String customersarticlenumber) {
        this.customersarticlenumber = customersarticlenumber;
    }

    public String getChinesename() {
        return chinesename;
    }

    public void setChinesename(String chinesename) {
        this.chinesename = chinesename;
    }

    public String getEnglishnames() {
        return englishnames;
    }

    public void setEnglishnames(String englishnames) {
        this.englishnames = englishnames;
    }

    public String getChinesedescription() {
        return chinesedescription;
    }

    public void setChinesedescription(String chinesedescription) {
        this.chinesedescription = chinesedescription;
    }

    public String getEnglishdescription() {
        return englishdescription;
    }

    public void setEnglishdescription(String englishdescription) {
        this.englishdescription = englishdescription;
    }

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getUnit() {
        return unit;
    }

    public void setUnit(String unit) {
        this.unit = unit;
    }

    public String getUnitprice() {
        return unitprice;
    }

    public void setUnitprice(String unitprice) {
        this.unitprice = unitprice;
    }

    public String getAmountsubtotal() {
        return amountsubtotal;
    }

    public void setAmountsubtotal(String amountsubtotal) {
        this.amountsubtotal = amountsubtotal;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getCustomscode() {
        return customscode;
    }

    public void setCustomscode(String customscode) {
        this.customscode = customscode;
    }

    public Date getCreattime() {
        return creattime;
    }

    public void setCreattime(Date creattime) {
        this.creattime = creattime;
    }

    public Date getEdittime() {
        return edittime;
    }

    public void setEdittime(Date edittime) {
        this.edittime = edittime;
    }

    public String getCustomscommodity() {
        return customscommodity;
    }

    public void setCustomscommodity(String customscommodity) {
        this.customscommodity = customscommodity;
    }

    public String getEnglishname() {
        return englishname;
    }

    public void setEnglishname(String englishname) {
        this.englishname = englishname;
    }

    public String getCustomsdeclarationunits() {
        return customsdeclarationunits;
    }

    public void setCustomsdeclarationunits(String customsdeclarationunits) {
        this.customsdeclarationunits = customsdeclarationunits;
    }

    public String getImportduties() {
        return importduties;
    }

    public void setImportduties(String importduties) {
        this.importduties = importduties;
    }

    public BigDecimal getTaxrebates() {
        return taxrebates;
    }

    public void setTaxrebates(BigDecimal taxrebates) {
        this.taxrebates = taxrebates;
    }

    public BigDecimal getValueaddedtax() {
        return valueaddedtax;
    }

    public void setValueaddedtax(BigDecimal valueaddedtax) {
        this.valueaddedtax = valueaddedtax;
    }

    public BigDecimal getLong() {
        return longs;
    }

    public void setLong(BigDecimal longs) {
        this.longs = longs;
    }

    public BigDecimal getWide() {
        return wide;
    }

    public void setWide(BigDecimal wide) {
        this.wide = wide;
    }

    public String getHigh() {
        return high;
    }

    public void setHigh(String high) {
        this.high = high;
    }

    public String getDescriptionouterpacking() {
        return descriptionouterpacking;
    }

    public void setDescriptionouterpacking(String descriptionouterpacking) {
        this.descriptionouterpacking = descriptionouterpacking;
    }

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        ContractProductInfo other = (ContractProductInfo) that;
        return (this.getContractproductid() == null ? other.getContractproductid() == null : this.getContractproductid().equals(other.getContractproductid()))
            && (this.getContractid() == null ? other.getContractid() == null : this.getContractid().equals(other.getContractid()))
            && (this.getProductid() == null ? other.getProductid() == null : this.getProductid().equals(other.getProductid()))
            && (this.getSpecid() == null ? other.getSpecid() == null : this.getSpecid().equals(other.getSpecid()))
            && (this.getSupplyerid() == null ? other.getSupplyerid() == null : this.getSupplyerid().equals(other.getSupplyerid()))
            && (this.getSupplyername() == null ? other.getSupplyername() == null : this.getSupplyername().equals(other.getSupplyername()))
            && (this.getBarcode() == null ? other.getBarcode() == null : this.getBarcode().equals(other.getBarcode()))
            && (this.getProductcode() == null ? other.getProductcode() == null : this.getProductcode().equals(other.getProductcode()))
            && (this.getSpecificationcoding() == null ? other.getSpecificationcoding() == null : this.getSpecificationcoding().equals(other.getSpecificationcoding()))
            && (this.getThespecification() == null ? other.getThespecification() == null : this.getThespecification().equals(other.getThespecification()))
            && (this.getCustomersarticlenumber() == null ? other.getCustomersarticlenumber() == null : this.getCustomersarticlenumber().equals(other.getCustomersarticlenumber()))
            && (this.getChinesename() == null ? other.getChinesename() == null : this.getChinesename().equals(other.getChinesename()))
            && (this.getEnglishnames() == null ? other.getEnglishnames() == null : this.getEnglishnames().equals(other.getEnglishnames()))
            && (this.getChinesedescription() == null ? other.getChinesedescription() == null : this.getChinesedescription().equals(other.getChinesedescription()))
            && (this.getEnglishdescription() == null ? other.getEnglishdescription() == null : this.getEnglishdescription().equals(other.getEnglishdescription()))
            && (this.getNumber() == null ? other.getNumber() == null : this.getNumber().equals(other.getNumber()))
            && (this.getUnit() == null ? other.getUnit() == null : this.getUnit().equals(other.getUnit()))
            && (this.getUnitprice() == null ? other.getUnitprice() == null : this.getUnitprice().equals(other.getUnitprice()))
            && (this.getAmountsubtotal() == null ? other.getAmountsubtotal() == null : this.getAmountsubtotal().equals(other.getAmountsubtotal()))
            && (this.getColor() == null ? other.getColor() == null : this.getColor().equals(other.getColor()))
            && (this.getCustomscode() == null ? other.getCustomscode() == null : this.getCustomscode().equals(other.getCustomscode()))
            && (this.getCreattime() == null ? other.getCreattime() == null : this.getCreattime().equals(other.getCreattime()))
            && (this.getEdittime() == null ? other.getEdittime() == null : this.getEdittime().equals(other.getEdittime()))
            && (this.getCustomscommodity() == null ? other.getCustomscommodity() == null : this.getCustomscommodity().equals(other.getCustomscommodity()))
            && (this.getEnglishname() == null ? other.getEnglishname() == null : this.getEnglishname().equals(other.getEnglishname()))
            && (this.getCustomsdeclarationunits() == null ? other.getCustomsdeclarationunits() == null : this.getCustomsdeclarationunits().equals(other.getCustomsdeclarationunits()))
            && (this.getImportduties() == null ? other.getImportduties() == null : this.getImportduties().equals(other.getImportduties()))
            && (this.getTaxrebates() == null ? other.getTaxrebates() == null : this.getTaxrebates().equals(other.getTaxrebates()))
            && (this.getValueaddedtax() == null ? other.getValueaddedtax() == null : this.getValueaddedtax().equals(other.getValueaddedtax()))
            && (this.getLong() == null ? other.getLong() == null : this.getLong().equals(other.getLong()))
            && (this.getWide() == null ? other.getWide() == null : this.getWide().equals(other.getWide()))
            && (this.getHigh() == null ? other.getHigh() == null : this.getHigh().equals(other.getHigh()))
            && (this.getDescriptionouterpacking() == null ? other.getDescriptionouterpacking() == null : this.getDescriptionouterpacking().equals(other.getDescriptionouterpacking()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getContractproductid() == null) ? 0 : getContractproductid().hashCode());
        result = prime * result + ((getContractid() == null) ? 0 : getContractid().hashCode());
        result = prime * result + ((getProductid() == null) ? 0 : getProductid().hashCode());
        result = prime * result + ((getSpecid() == null) ? 0 : getSpecid().hashCode());
        result = prime * result + ((getSupplyerid() == null) ? 0 : getSupplyerid().hashCode());
        result = prime * result + ((getSupplyername() == null) ? 0 : getSupplyername().hashCode());
        result = prime * result + ((getBarcode() == null) ? 0 : getBarcode().hashCode());
        result = prime * result + ((getProductcode() == null) ? 0 : getProductcode().hashCode());
        result = prime * result + ((getSpecificationcoding() == null) ? 0 : getSpecificationcoding().hashCode());
        result = prime * result + ((getThespecification() == null) ? 0 : getThespecification().hashCode());
        result = prime * result + ((getCustomersarticlenumber() == null) ? 0 : getCustomersarticlenumber().hashCode());
        result = prime * result + ((getChinesename() == null) ? 0 : getChinesename().hashCode());
        result = prime * result + ((getEnglishnames() == null) ? 0 : getEnglishnames().hashCode());
        result = prime * result + ((getChinesedescription() == null) ? 0 : getChinesedescription().hashCode());
        result = prime * result + ((getEnglishdescription() == null) ? 0 : getEnglishdescription().hashCode());
        result = prime * result + ((getNumber() == null) ? 0 : getNumber().hashCode());
        result = prime * result + ((getUnit() == null) ? 0 : getUnit().hashCode());
        result = prime * result + ((getUnitprice() == null) ? 0 : getUnitprice().hashCode());
        result = prime * result + ((getAmountsubtotal() == null) ? 0 : getAmountsubtotal().hashCode());
        result = prime * result + ((getColor() == null) ? 0 : getColor().hashCode());
        result = prime * result + ((getCustomscode() == null) ? 0 : getCustomscode().hashCode());
        result = prime * result + ((getCreattime() == null) ? 0 : getCreattime().hashCode());
        result = prime * result + ((getEdittime() == null) ? 0 : getEdittime().hashCode());
        result = prime * result + ((getCustomscommodity() == null) ? 0 : getCustomscommodity().hashCode());
        result = prime * result + ((getEnglishname() == null) ? 0 : getEnglishname().hashCode());
        result = prime * result + ((getCustomsdeclarationunits() == null) ? 0 : getCustomsdeclarationunits().hashCode());
        result = prime * result + ((getImportduties() == null) ? 0 : getImportduties().hashCode());
        result = prime * result + ((getTaxrebates() == null) ? 0 : getTaxrebates().hashCode());
        result = prime * result + ((getValueaddedtax() == null) ? 0 : getValueaddedtax().hashCode());
        result = prime * result + ((getLong() == null) ? 0 : getLong().hashCode());
        result = prime * result + ((getWide() == null) ? 0 : getWide().hashCode());
        result = prime * result + ((getHigh() == null) ? 0 : getHigh().hashCode());
        result = prime * result + ((getDescriptionouterpacking() == null) ? 0 : getDescriptionouterpacking().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", contractproductid=").append(contractproductid);
        sb.append(", contractid=").append(contractid);
        sb.append(", productid=").append(productid);
        sb.append(", specid=").append(specid);
        sb.append(", supplyerid=").append(supplyerid);
        sb.append(", supplyername=").append(supplyername);
        sb.append(", barcode=").append(barcode);
        sb.append(", productcode=").append(productcode);
        sb.append(", specificationcoding=").append(specificationcoding);
        sb.append(", thespecification=").append(thespecification);
        sb.append(", customersarticlenumber=").append(customersarticlenumber);
        sb.append(", chinesename=").append(chinesename);
        sb.append(", englishnames=").append(englishnames);
        sb.append(", chinesedescription=").append(chinesedescription);
        sb.append(", englishdescription=").append(englishdescription);
        sb.append(", number=").append(number);
        sb.append(", unit=").append(unit);
        sb.append(", unitprice=").append(unitprice);
        sb.append(", amountsubtotal=").append(amountsubtotal);
        sb.append(", color=").append(color);
        sb.append(", customscode=").append(customscode);
        sb.append(", creattime=").append(creattime);
        sb.append(", edittime=").append(edittime);
        sb.append(", customscommodity=").append(customscommodity);
        sb.append(", englishname=").append(englishname);
        sb.append(", customsdeclarationunits=").append(customsdeclarationunits);
        sb.append(", importduties=").append(importduties);
        sb.append(", taxrebates=").append(taxrebates);
        sb.append(", valueaddedtax=").append(valueaddedtax);
        sb.append(", long=").append(longs);
        sb.append(", wide=").append(wide);
        sb.append(", high=").append(high);
        sb.append(", descriptionouterpacking=").append(descriptionouterpacking);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}